package InnerClass;

/**
 * Created by Administrator on 2022/8/19.
 */
public class StaticClass {
    public int data1 = 1;
    private int data2 = 2;
    public static int data3 = 3;

    /**
     * 1.如何获取静态内部类对象
     *      可以直接获取因为静态内部类不属于对象，属于外部类，
     *      所以不需要创建外部类对象就可以直接创建
     *      外部类名.内部类名 内部类对象名 = new 外部类名.内部类名();
     * 2. 静态内部类当中，不能访问外部类的非静态成员。外部类的非静态成员，
     *    需要通过外部类的对象的引用才能访问。
     *    如果非要访问就要在静态内部类当中创建外部类对象
     *    非要访问：StaticClass staticClass = new StaticClass();
     *              System.out.println(staticClass.data1);
     */
    static class Static {
        public int data4 = 4;
        private int data5 = 5;
        static int data6 = 6;

        public void setDate() {
            data4 = 7;
            StaticClass staticClass = new StaticClass();
            System.out.println(staticClass.data1);
            // 在内部类中只能访问外部类的静态成员
            System.out.println(data3);
            System.out.println(data4);
            System.out.println(data5);
            System.out.println(Static.data6);
        }

    }
}
class Test2 {
    public static void main(String[] args) {
        StaticClass.Static example = new StaticClass.Static();
        example.setDate();
    }
}